In a communication system, a device (typically a mobile device) termed user equipment (UE) communicates wirelessly with a radio access network. Communications between the UE and the radio access network may be effected in accordance with a multi-layered communications protocol. A modem is a device for transmitting and receiving signals in such a system and is used at the UE to communicate with the radio access network. A modem may be integrated in the UE or it may be not be integrated in the UE and may be connected to the UE via a suitable external interface (e.g. USB). In particular, a modem may be used at a UE to connect the UE to a public land mobile network (PLMN) such as a mobile cellular network (i.e. a 3GPP network or other CDMA network). The UE may comprise a “host” or “application” processor that communicates with the modem and causes it to perform desired tasks.
An example of a communication system is a 3GPP Universal Mobile Telecommunications System (UMTS) which is a cellular system comprising a collection of Node-Bs (base stations) and Radio Network Controllers (RNCs) controlling those Node-Bs. The Node-Bs and RNCs are collectively referred to as UTRAN (“Universal Terrestrial Radio Access Network”). A UMTS system may employ wideband code division multiple access (W-CDMA) radio access technology for communication between UEs and UTRAN.
A Universal Integrated Circuit Card (UICC) may be communicatively coupled to the modem. A UICC is a smart card (that is a physical card with embedded integrated circuits) comprising a CPU (“Central Processing Unit”), computer storage (e.g. ROM, RAM, EEPROM etc.) and input/output (I/O) circuits for communicating with the modem. Typically, the housing of a UE with an integrated modem or the housing of an external modem has a card slot which supports the UICC and communication between the modem and the UICC is effected by way of electrical pin connectors.
A UICC may store an application such as a Universal Subscriber Identity Module (USIM)—see e.g. 3GPP TS 31.102—which provides access to a UMTS network in the following manner. The USIM application is similar in some respects to the Subscriber Identity Module (SIM) application defined in GSM standards.
The USIM holds a unique International Mobile Subscriber Identifier (IMSI) and an associated unique authentication key K assigned by an operator of the network. Typically, the IMSI can be obtained via the UICC I/O, but not the key K which remains contained within the UICC. In order to gain access to the network, the IMSI is transmitted to the network. In response, the network generates a random number RAND which it sends to the UE and also signs with the key K, generating a first value. Once received, RAND is passed to the USIM application which signs it with the key K, generating a second value. The second value is returned to the network and, if the received second value matches the first value generated by the network, access to the network is granted, e.g. thereby enabling the UE to establish calls, transfer data etc.
The USIM application may be secured by a PIN (“Personal Identification Number”) code. Before the IMSI can be obtained, the correct PIN (i.e. matching PIN data stored at the UICC) may have to be passed to the UICC for verification. The user may enter the PIN e.g. to a keypad or touchscreen of the UE.
Communication between the host and the modem can be implemented using protocols provided by the 3GPP specifications. In particular, communication between the modem and the host can be effected using an attention (AT) command port. For instance, the host processor may assert a particular AT command to cause the modem to perform a desired operation. AT commands form part of the “Hayes command set” modem command language, a high-level command language for effecting modem tasks see e.g. International Telecommunication Union (ITU-T) Rec. V.250 (07/2003). The command set comprises a set of short text strings (comprised of one or more characters, typically coded as ASCII characters) which can be combined to form complete commands for modem operations such as call establishment/termination, connection management and other functions operation e.g. SMS operations. An AT command c is typically delivered to the modem preceded by the characters “at” or “AT” to indicate to the modem that c is an AT command. AT commands constitute a software interface between the host and the modem.
Currently a “+CPIN” AT command (see e.g. 3GPP TS 27.007) is used to enter the PIN code for a 2G SIM/3G USIM application. Specifically, a command “AT +CPIN=<pin>” may be used to deliver an input PIN “<pin>” to the USIM e.g. as part of a user authentication procedure.
A counter at the UICC records the number of times an incorrect PIN value has been entered, representing a failed attempt to enter the PIN. If the total number of sequential failed attempts reached a threshold (e.g. three attempts), the PIN may be “locked”. In practice, the UICC may implement a counter representing the number of remaining attempts before the PIN is locked which is decremented in the event of a failed attempt. Once the PIN is locked, the USIM application cannot be enabled even if the correct PIN is entered until a correct Pin Unlock Code (PUK) is received; a command “AT +CPIN=<pin>,<newpin>” may be used to reset the PIN code by providing the PUK code “<pin>” (current PUK) and set it to “<newpin>” (desired new PIN). However, if the correct PIN is entered before reaching the threshold, the USIM is enabled and the counter reset.
In response to a command “AT +CPIN?”, the modem obtains a current status PIN status from the UICC e.g. one of “READY” indicating that the correct PIN has been received (thereby enabling the USIM application), “SIM PIN” indicating that the correct PIN has not been received (and that the USIM application is not yet enabled), or “SIM PUK” indicating that one or multiple UICC applications (e.g. USIM application(s)) is/are locked (e.g. because three incorrect PINs have been entered sequentially). A response “+CPIN:<code>” is returned by the modem to the host with the <code> parameter indicating the current PIN status (e.g. <code> may be one of READY, SIM PIN, or SIM PUK).
A command “AT+CPINR” directed to the modem causes the modem to obtain the remaining PIN entries—that is, the number of times that an incorrect PIN can be entered before the USIM is locked (e.g. 3, 2, 1 or 0) as well as the PIN status (<code>—see above), and the default (maximum, e.g. 3) number of retires permitted (<default_retries>). In response to receiving the “AT+CPINR” command, a “+CPINR:<code>,<retries>,<default_retries>” is duly returned to the host by the modem.
A command “AT +CPWD” can be used to change various passwords of the USIM, including the PIN—specifically, a command
“AT +CPWD=<fac>,<oldpwd>,<newpwd>”
where “<fac>” indicates which password is being changed, “<oldpwd>” is the current value of that password, and “<newpwd>” is the new desired value of that password. Thus “AT +CPWD” may be used to change the PIN used to access the USIM application. The parameter <fac> can take one of the following values:“PS” Phone to SIM Lock“SC” SIM Lock (PIN1)“PN” Network Personalization“PU” Network Subset Personalization“PP” Service Provider Personalization“PC” Corporate Personalizationwith <fac>=SC being employed in the present context.
A command “AT +CLCK” can be used to enable or disable the PIN check (i.e. to change whether or not a PIN is required before access to the USIM will be granted). Specifically, a command “AT +CLCK=<fac>,<mode>,<passwd>” with <fac> being a particular one of the above-listed passwords (SC in this case); <mode>=0 enabling that password check, <mode>=1 disabling that password check, and <mode>=2 querying whether or not that password is currently enabled; and <passwd> being the current PIN code needed when <mode>=0 and <mode>=1.